<?
require_once dirname(__FILE__) . '/cbase.php';

class CPermissao extends CBase {
	
	public function __construct() {
		parent::__construct();
	}
	
	public function index() {
		redirect('cpermissao/listar/', 'refresh');
	}
	
	public function listar() {
		$this->template->add_js(js_url() . 'permissao/listar.js');
		$this->template->write_view('conteudo','permissao/listar');
		$this->template->render();
	}
	
	public function manter($id) {

		$obj = new Permissao();
		if ($id) {
			$obj->{$obj->__dm['primaria']} = $id;
			$obj = $obj->recuperar();
			if (count($obj) == 0)
			    die();
			else
			    $dados['obj'] = $obj[0];
		}
		else {
			$dados['obj'] = $obj;
		}
	
        $this->template->add_js(js_url() . 'permissao/manter.js');
        $this->template->write_view('conteudo','permissao/manter', $dados);
        $this->template->render();
	}

	public function ajaxCarregamentoInicial($pr_id) {
        $controlador = new Controlador();
        $controlador->pr_id = $pr_id;
        $r_controlador = $controlador->recuperar();

        foreach ($r_controlador as $tmp) {
            $retorno[] = array(
                'controlador' => array('id' => $tmp->co_caminho, 'label' => $tmp->co_caminho)
            );
        }

        echo json_encode($retorno);
	}
	
	public function salvar() {

		$acoes    = explode(',',$this->input->post('acao'));
		$caminhos = explode(',',$this->input->post('caminho'));
		$tela     = $this->input->post('tela');

		$permissao = new Permissao();
		$controlador = new Controlador();
		for ($i=0;$i<count($acoes); $i++){

			
			$permissao->pr_acao = $acoes[$i];
			$permissao->pr_tela = $tela;
			$prId=$permissao->inserir();
			
			
			$controlador->pr_id = $prId;
			$controlador->co_caminho = $caminhos[$i];
			$controlador->inserir();
		}
	}
	
	public function ajaxExcluir() {
        $obj = new Controlador();
        $obj->pr_id = $this->input->post('id');
        $obj->excluir();

		$obj = new Permissao();
		$obj->{$obj->__dm['primaria']} = $this->input->post('id');
		$obj->excluir();
	}
	
	public function ajaxBuscarPermissoes() {
		$limite = $this->input->get('limite');
		$inicio = ($this->input->get('pagina') - 1) * $limite;
        $order  = $this->input->get('order');
		$order = explode(' ', $order);
		$direcao = $order[1];
		
		switch ($order[0]) {
			case '2':
				$campo_ordenacao = 'pr_acao';
				break;
				
			case '3':
				$campo_ordenacao = 'pr_tela';
				break;
						
			default:
				$campo_ordenacao = 'pr_id';
		}
		
		$obj = new Permissao();
		$obj->pr_acao = $this->input->get('pr_acao') . '%';
		$obj->pr_tela = $this->input->get('pr_tela') . '%';
		$resp['total'] = count($obj->recuperar());

		$obj->ordenarPor("$campo_ordenacao $direcao");
		$obj->limite($limite, $inicio);
		$objs = $obj->recuperar(); 
		
		$total_pagina = count($objs);
		for ($i = 0; $i < $total_pagina; $i++) {
			
			$dadosBotoes['id'] = $objs[$i]->{$obj->__dm['primaria']};
			$botoes = $this->load->view('permissao/botoes',$dadosBotoes,true);
			
			$z = 1;
			$resp['data'][$i][$z++] = $objs[$i]->pr_id;
			$resp['data'][$i][$z++] = $objs[$i]->pr_tela;
			$resp['data'][$i][$z++] = $objs[$i]->pr_acao;
			$resp['data'][$i][$z++] = $botoes;
		}
		
		echo json_encode($resp);
	}
	
	public function ajaxBuscarPermissoesTotal() {
		$limite = $this->input->get('limite');
		$inicio = ($this->input->get('pagina') - 1) * $limite;
		$order  = $this->input->get('order');
		$order = explode(' ', $order);
		$direcao = $order[1];		
		
		switch ($order[0]) {
			case '2':
				$campo_ordenacao = 'pr_acao';
				break;
				
			case '3':
				$campo_ordenacao = 'pr_tela';
				break;
						
			default:
				$campo_ordenacao = 'pr_id';
		}
		
		
		$obj = new Permissao();
		$obj->pr_acao =  'Total%';
		$obj->pr_tela = $this->input->get('pr_tela') . '%';
		$resp['total'] = count($obj->recuperar());
		
		$obj->ordenarPor("$campo_ordenacao $direcao");
		$obj->limite($limite, $inicio);
		$objs = $obj->recuperar();
		
		$total_pagina = count($objs);
		for ($i = 0; $i < $total_pagina; $i++) {
				
			$dadosBotoes['id'] = $objs[$i]->{$obj->__dm['primaria']};
			$botoes = $this->load->view('permissao/botoes',$dadosBotoes,true);
				
			$z = 1;
			$resp['data'][$i][$z++] = $objs[$i]->pr_id;
			$resp['data'][$i][$z++] = $objs[$i]->pr_tela;
			$resp['data'][$i][$z++] = $objs[$i]->pr_acao;
			$resp['data'][$i][$z++] = $botoes;
		}
		
		echo json_encode($resp);
	}
}
